'''
华 山 派：
# 华山：建议: 天性：狡黠多变，男：washto 19 25 17 19，女：washto 19 25 18 18，
推荐天赋：str 19 int 25 con 18 dex 18
最终天赋：str 28 int 34 con 30 dex 27
性    格：狡黠多变
门派特点：华山归来不看岳，独孤笑傲天地间
推荐武功：独孤九剑 紫霞神功 
先天注释：可兼容战神心经、百花错拳、庄子舞、易筋经、玄冥掌、玄冥神功等
          大多数公共武功。若能中一点身法故事，还可修习金蛇剑和五神剑。
门派点评：华山在逍遥星宿崛起后强大的储内效果下没法再像以前那样的笑傲江
          湖了，虽然是魔教的克星，可却也展露了自己的缺点，笑沧海在对方
          重伤的情况下才能一击致死，在前期无所谓，威猛的攻击下都是一击
          必杀，飒然而去，可后期玩家们气血丰厚的时候，却没法一招克敌了。
          不过总体来说，华山依然是强力门派，九剑配合加强攻击的紫霞神功
          依然是玩家值得拥有的技能。修得元神后，群伤剑气方会显现，据说
          效果加强了，值得期待。建议从剑宗学完技能并ask 了所有绝招再拜
          高老者回气宗，剑宗那几个技能和pf都相当不错。pf.xiao卸除对方兵
          择之一了。
'''
from pymud import Alias, Trigger, SimpleCommand, SimpleTrigger, SimpleAlias
from pymud.settings import Settings

class Configuration:
    yzm = "cb3a8b56aaaec44c78aa1ddc7145bea2"
    name = "hszdz"
    fname = '赵'
    lname = '德著'
    pwd = 'a111111'
    suppwd = '880126'
    sex = 'm'
    email = 'shanghua_021@qq.com'
    choose = '2'
    washto = '19 25 17 19'
    born = '扬州人氏'

    hps=('rm','fy')

    def __init__(self, session) -> None:
        # 打开自动连接
        Settings.client["auto_reconnect"] = True
        self.session = session
    
        self._triggers = {}
        self._initTriggers()
        self.session.exec(self.name)

    def _initTriggers(self):
        self._triggers["tri_born0"] = SimpleTrigger(self.session,
            r"^注册验证串错误，请重新输入注册验证串.*",
            self.yzm,
            group="tri_born", id="tri_born0",
        )
        self._triggers["tri_born1"] = SimpleTrigger(self.session,
            r"^使用.+这个名字将会创造一个新的人物，您确定吗\(y\/n\)？$",
            'y',
            group="tri_born", id="tri_born1"
        )
        self._triggers["tri_born1_1"] = SimpleTrigger(self.session,
            r"^您的英文名字：|^好吧，那么请重新输入您的英文名字：|^请输入您的英文名字",
            self.name,
            group="tri_born", id="tri_born1_1"
        )
        self._triggers["tri_born2"] = SimpleTrigger(self.session,
            r"^您的中文姓氏\(不要超过两个汉字\)：",
            self.fname,
            group="tri_born", id="tri_born2"
        )
        self._triggers["tri_born3"] = SimpleTrigger(self.session,
            r"^您的中文名字\(不要超过两个汉字\)：",
            self.lname,
            group="tri_born", id="tri_born3"
        )
        self._triggers["tri_born4"] = SimpleTrigger(self.session,
            r"^请设定您的管理密码：|^请再输入一次您的管理密码，以确认您没记错：",
            self.suppwd,
            group="tri_born", id="tri_born4"
        )
        self._triggers["tri_born5"] = SimpleTrigger(self.session,
            r"^请输入你的普通密码：|^请再输入一次您的密码，以确认您没记错：",
            self.pwd,
            group="tri_born", id="tri_born5"
        )
        self._triggers["tri_born6"] = SimpleTrigger(self.session,
            r"^您要扮演男性\(m\)的角色或女性\(f\)的角色？",
            f'{self.sex};l',
            group="tri_born", id="tri_born6"
        )
        self._triggers["tri_born7"] = SimpleTrigger(self.session,
            r"^现在，请输入\s+register\s+您的email地址",
            f"register {self.email}",
            group="tri_born", id="tri_born7"
        )
        self._triggers["tri_born8"] = SimpleTrigger(self.session,
            r"^您可以选择\(choose\)的角色性格如下：",
            f"choose {self.choose}",
            group="tri_born", id="tri_born8"
        )
        self._triggers["tri_born9"] = SimpleTrigger(self.session,
            r"^你选择了.+的性格，接下来你可以洗\(washto\)天赋了。",
            f"washto {self.washto}",
            group="tri_born", id="tri_born9"
        )
        self._triggers["tri_born10"] = SimpleTrigger(self.session,
            r"^天赋总和为.+如果你满意，就去投胎\(born\)吧！",
            f"born {self.born};q",
            group="tri_born", id="tri_born10"
        )
        self._triggers["tri_born11"] = SimpleTrigger(self.session,
            r"^欢迎您来与我们共同历阅这个虚拟世界，特为您奉上一份小礼物以表心意！",
            "w;n;w;open door;nw;hp -g",
            group="tri_born", id="tri_born11"
        )
        # 【 容 貌 】  [ 30]    [ 30]    [  0]    [  0]    [  0]    [N/A]
        # 【 福 缘 】  [ 30]    [ 30]    [  0]    [  0]    [  0]    [N/A]
        self._triggers["tri_born12"] = Trigger(self.session,
            patterns=(
                r"^\s*【\s*容\s*貌\s*】\s+\[\s+(\d+)\]\s+",
                r"^\s*【\s*福\s*缘\s*】\s+\[\s+(\d+)\]\s+",
            ),
            group="tri_born", id="tri_born12",
            onSuccess = self.onTriggerGetHP
        )
        self._triggers["tri_born13"] = SimpleTrigger(self.session,
            r"^考虑清楚，确定的话请输入您的管理密码：",
            self.suppwd,
            group="tri_born", id="tri_born13"
        )
        self._triggers["tri_born13"] = Trigger(self.session,
            patterns=(
                r"^你的账号是新建的，本站规定新建账号必须连续在线半小时才能被有效保",
                r"^留，退出该游戏将删除你的账号，你确定要放弃该帐号而退出吗？（y\/n）",
            ),
            group="tri_born", id="tri_born13",
            onSuccess = self._onTriggerQuit
        )
        self.session.addTriggers(self._triggers)
    
    def _onTriggerQuit(self, name, line, wildcards):
        self.session.writeline('y')
    
    def onTriggerGetHP(self, name, line, wildcards):
        self.session.setVariables(self.hps, wildcards)
        self.session.create_task(self._asyncGetHP(wildcards))
    async def _asyncGetHP(self, wildcards):
        var = self.session.getVariables(self.hps)
        self.session.info(var[0])
        self.session.info(var[1])
        if int(var[0])!=30 or int(var[1])!=30:
            # self.session.writeline("suicide -f")
            self.session.writeline("quit")
        else:
            self.session.writeline("#unload")